package com.burst.reptile.framework.constant;

import java.util.List;

import com.burst.reptile.modular.api.vo.ReplyVo;
import com.burst.reptile.modular.system.entity.SysUser;
import com.burst.reptile.modular.zp.entity.ZpResources;

/**
 * 数据生产工厂的接口
 * @author wujin
 *
 * @date: 2020年6月19日 上午10:00:41
 */
public interface IConstantFactory {

	/**
	 * 根据用户ID 查询用户
	 * @param userId 用户ID
	 * @return
	 */
	SysUser getUser(Long userId);

	/**
	 * 获取用户粉丝量
	 * @param userId 用户ID
	 * @return
	 */
	String getFans(Long userId);

	/**
	 * 获取用户关注量
	 * @param userId 用户ID
	 * @return
	 */
	String getAttention(Long userId);

	/**
	 * 获取用户点赞量
	 * @param userId
	 * @return
	 */
	String getLikes(Long userId);

	/**
	 * 获取用发布量
	 * @param userId
	 * @return
	 */
	String getReleaseVolume(Long userId);
	
	/**
	 * 是否关注
	 * @param userId 作者ID
	 * @param loginUserId 登录用户ID
	 * @return
	 */
	boolean mutual(Long userId, Long loginUserId);

	/**
	 * 获取文章内容
	 * @param articleId 文章ID
	 * @return
	 */
	ZpResources getResources(Long articleId);

	/**
	 * 用户收藏数量
	 * @param userId 用户ID
	 * @return
	 */
	String getCollects(Long userId);

	/**
	 * 项目服务名称
	 * @param serviceItems ID
	 * @return
	 */
	String getserviceItemsName(Integer serviceItems);

	/**
	 * 获取地址名称
	 * @param county ID
	 * @return
	 */
	String getAddressName(String county);

	/**
	 * 获取所有回复列表
	 * @param cid 评论ID
	 * @return
	 */
	List<ReplyVo> replyList(Long cid);

	/**
	 * 评论数
	 * @param articleId 文章ID
	 * @return
	 */
	String getCommentNum(Long articleId);

	/**
	 * 评论是否点赞 
	 * @param loginUserId 用户ID
	 * @param cid 评论ID
	 * @return
	 */
	boolean isSupport(Long loginUserId, Long cid);

	/**
	 * 评论点赞数
	 * @param cid 评论ID
	 * @return
	 */
	Integer getCommentLikes(Long cid);
	
	/**
	 * 业态名称
	 * @param formatId 业态ID
	 * @return
	 */
	String getFormatName(Integer formatId);

	/**
	 * 是否推荐 
	 * @param articleId 文章ID
	 * @return
	 */
	int getRec(Long articleId);

	/**
	 * 获取栏目名称
	 * @param columnId 栏目ID
	 * @return
	 */
	String getColumnName(Integer columnId);

	/**
	 * 获取回复条数
	 * @param cid 评论ID
	 * @return
	 */
	Integer replyNum(Long cid);

	/**
	 * 获取获赞量
	 * @param userId 用户ID
	 * @return
	 */
	String getBePraised(Long userId);

	/**
	 * 草稿数量
	 * @param userId
	 * @return
	 */
	Integer getDraftsNum(Long userId);

	/**
	 * 获取未读消息数量
	 * @param userId
	 * @return
	 */
	Integer getMsgNum(Long userId);

	/**
	 * 未读私信数量
	 * @param userId
	 * @return
	 */
	Integer getPrivateLetterNum(Long userId);

}
